<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>v-bind指令详解（它是一个负责动态绑定的指令）</title>
    <!-- 安装vue：当你使用script进行vue安装之后，上下文就注册了一个全局变量 Vue -->
    <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
</head>

<body>
    <!-- 
        v-bind指令详解
            1.这个指令是干什么的？
                它可以让HTML标签的某个属性的值产生动态的效果
            2.v-bind指令的语法格式：
                <HTML标签 v-bind:参数="表达式"><HTML标签>
            3.v-bind指令的编译原理？
                编译前：
                    <HTML标签 v-bind:参数="表达式"><HTML标签>
                编译后：
                    <HTML标签 参数="表达式的执行结果"></HTML标签>  
                注意两项：
                    第一：在编译的时候v-bind后面的“参数名”会被编译为HTML标签的“属性名”
                    第二：表达式会关联data，当data发生改变之后，表达式的执行结果就会发生变化
                    所以，连带产生动态效果。
            4. v-bind的简写形式：v-bind:参数="表达式" 简化为 :参数="表达式"
    -->

    <!-- 准备一个容器 -->
    <div id="app">
        <!-- 注意：以下代码中 msg 是变量名 -->
        <!-- 注意：原则上v-bind指令后面的参数名可以随便写 -->
        <!-- 虽然可以随便写，但大部分情况下，这个参数名还是需要写成该HTML标签支持的属性名 -->
        <span v-bind:xyz="msg"></span>

        <!-- 这个msg是常量 -->
        <span v-bind:xyz="'msg'"></span>

    </div>

    <!-- vue程序 -->
    <script>

        //赋值的过程可以看作是一种绑定的过程
        // let i = 100

        new Vue({
            el: '#app',
            data: {
                msg: 'Hello Vue!'
            }
        })
    </script>
</body>

</html>